package com.example.hutool;

import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileNameUtil;

import java.nio.file.Paths;

/**
 * @author 江黎
 * @since 2022-11-22
 */
public class 文件工具类 {

    public static void main(String[] args) {
        String fineName = "C:\\Users\\jiangli\\Desktop\\zb.txt";
        // 1、获取文件名，不带路径
        FileUtil.getName(fineName);
        // 2、获取文件名，不带路径和扩展名
        FileUtil.getPrefix(fineName);
        FileUtil.mainName(fineName);
        // 3、获取文件名扩展名
        FileUtil.getSuffix(fineName);
        FileUtil.extName(fineName);
        // 4、判断文件是否以指定后缀结尾
        boolean b = FileNameUtil.isType(fineName, "jpg", "png");

        // 5、获取指定层级的父路径
        FileUtil.getParent(fineName, 1); // C:\Users\jiangli\Desktop
        // 6、获取指定位置的子路径部分，支持负数，例如index为-1表示从后数第一个节点位置
        FileUtil.getPathEle(Paths.get(fineName), 1); // jiangli

        // 7、获取绝对路径（使用左斜线/）
        FileUtil.getAbsolutePath(fineName);
        // 8、路径规范化
        FileUtil.normalize("C:/Users\\jiangli\\Desktop\\zb.txt");
        // 9、兼容不同操作系统的获取换行符
        FileUtil.getLineSeparator();
        // 10、判断路径是否包含不符合路径要求的字符
        FileUtil.containsInvalid("12:00");
        // 11、清楚路径中不符合路径要求的字符
        FileUtil.cleanInvalid("12:00");

        /*文件读写方法*/
        // 1、readBytes 按字节读
        // 2、readUtf8String 读取全部内容到字符串
        // 3、readUtf8Lines 按行读
        // 4、writeBytes 按字节写
        // 5、writeUtf8String 写出全部内容
        // 6、writeUtf8Lines 按行写

        /*文件操作方法*/
        // 1、FileUtil.size() 获取文件大小
        // 2、FileUtil.exist() 判断文件是否存在
        // 3、FileUtil.copy() 复制文件或文件夹
        // 4、FileUtil.move() 移动文件
        // 5、FileUtil.rename() 文件重命名
        // 6、FileUtil.mkdir() 创建文件夹
        // 7、FileUtil.mkdir() 删除文件或文件夹
        // 8、FileUtil.ls() 列举文件夹下的所有文件


    }
}
